A Thread in Time Saves Tabling Time
نویسندگان
چکیده
The use of tabling in logic programming has been recognized as a powerful evaluation technique. Currently available tabling systems are mostly based on variant checks and hence are limited in their ability to recognize reusable subcomputations. Tabling systems based on call subsumption can yield superior performance by recognizing a larger set of reusable computations. However, a straightforward adaptation of the mechanisms used in variant-based systems to reuse these computations can in fact result in considerable performance degradation. In this paper we propose a novel organization of tables using Dynamic Threaded Sequential Automata (DTSA) which permits eecient reuse of previously computed results in a subsumptive system. We describe an implementation of the tables using DTSA and the associated access mechanisms. We also report experimental results which show that a subsumptive tabling system implemented by extending the XSB logic programmingsystem with our table access techniques can perform signiicantly better than the original variant-based system.
منابع مشابه
Towards multi-threaded local tabling using a common table space
Multi-threading is currently supported by several well-known Prolog systems providing a highly portable solution for applications that can benefit from concurrency. When multithreading is combined with tabling, we can exploit the power of higher procedural control and declarative semantics. However, despite the availability of both threads and tabling in some Prolog systems, the implementation ...
متن کاملBatched Evaluation of Full-Sharing Multithreaded Tabling
Tabling is a technique that overcomes some limitations of traditional Prolog systems in dealing with redundant sub-computations and recursion. When tabling is combined with multithreading, we have the best of both worlds, since we can exploit the combination of higher declarative semantics with higher procedural control. To support this combination, the Yap Prolog system has, at engine level, m...
متن کاملOn Extending a Full-Sharing Multithreaded Tabling Design with Batched Scheduling
Tabling is a technique that overcomes some limitations of traditional Prolog systems in dealing with redundant sub-computations and recursion. When tabling is combined with multithreading, we have the best of both worlds, since we can exploit the combination of higher declarative semantics with higher procedural control. To support this combination, the Yap Prolog system has, at engine level, m...
متن کاملA Simple and Efficient Implementation of Concurrent Local Tabling
Newer Prolog implementations commonly offer support for multi-threading, and have also begun to offer support for tabling. However, most implementations do not yet integrate tabling with multithreading, and in particular do not support the sharing of a tabled computation among threads. In this paper we present algorithms to share completed tables among threads based on Concurrent Local SLG eval...
متن کاملSolving a Time Tabling Problem by Constraint Satisfaction
The time tabling problem is well known and much research has been done about it. This paper shows how a difficult instance of the time tabling problem with many parameters and loose constraints can be handled using constraint satisfaction. To this end the constraints have to be modeled in a format that can be handled efficiently. It is shown how several modelling problems can be solved in a gen...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1996